package controllers;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;

import models.Acervo;
import models.Colaborador;
import models.Diretor;
import models.Noticia;
import models.Operacao;
import models.OutrasOrganizacoe;
import models.Personalidade;
import models.PontoTuristico;
import models.Projeto;

import org.apache.commons.lang.StringEscapeUtils;

import play.mvc.Controller;

public class Application extends Controller {

	public static void index() {
		List<Noticia> noticias = Noticia.all().fetch();
		noticias = noticias.subList(noticias.size() - 5, noticias.size() - 1);

		for (Noticia noticia : noticias) {
			noticia.conteudo = getImagemNoticia(noticia.conteudo);
			noticia.lead = noticia.lead.substring(0, 40);
		}

		render(noticias);
	}

	public static void missoes() throws UnsupportedEncodingException {
		List<Operacao> operacao = Operacao.all().fetch();
		for (Operacao operacao2 : operacao) {
			operacao2.objetivo = StringEscapeUtils.unescapeHtml(operacao2.objetivo);
		}
		List<Acervo> acervo = Acervo.all().fetch();
		List<Projeto> projeto = Projeto.all().fetch();

		render(operacao, acervo, projeto);
	}

	public static String getImagemNoticia(String textoNoticia) {
		int indice = textoNoticia.indexOf("src=\"") + 5;
		textoNoticia = textoNoticia.substring(indice);
		indice = textoNoticia.indexOf("\"");
		textoNoticia = textoNoticia.substring(0, indice);
		return textoNoticia;
	}

	public static void colaboradores(long id) {
		Colaborador colaboradores = Colaborador.findById(id);
		render(colaboradores);
	}

	public static void contato() {
		render();
	}

	public static void logomarca(long id) throws IOException {
		Operacao operacao = Operacao.findById(id);

		response.setContentTypeIfNotSet("image/jpg");
		renderBinary(new ByteArrayInputStream(operacao.logomarca));
	}

	public static void exdiretores(long id) {
		Diretor diretor = Diretor.findById(id);
		render(diretor);
	}

	public static void links() {
		List<PontoTuristico> pontosturisticos = PontoTuristico.all().fetch();
		render(pontosturisticos);
	}

	public static void operacao(long id) {
		Operacao operacao = Operacao.findById(id);
		render(operacao);
	}

	public static void parceiros(long id) {
		OutrasOrganizacoe parceiros = OutrasOrganizacoe.findById(id);
		render(parceiros);
	}

	public static void personalidades(long id) {
		Personalidade personalidade = Personalidade.findById(id);
		render(personalidade);
	}

	public static void acervos(long id) {
		Acervo acervo = Acervo.findById(id);
		render(acervo);
	}

	public static void pessoal() {
		List<Personalidade> personalidades = Personalidade.all().fetch();
		List<Diretor> diretores = Diretor.all().fetch();
		List<Colaborador> colaboradores = Colaborador.all().fetch();
		List<OutrasOrganizacoe> parceiros = OutrasOrganizacoe.all().fetch();

		render(personalidades, diretores, colaboradores, parceiros);
	}

	public static void pontosTuristicos() {
		render();
	}

	public static void projetos(long id) {
		Projeto projeto = Projeto.findById(id);
		render(projeto);
	}

	public static void sobre() {
		render();
	}

	public static void videos() {
		render();
	}

}